/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package coop.demanda.habitacional;

import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.faces.context.FacesContext;
import javax.inject.Named;
import javax.persistence.Transient;

/**
 *
 * @author Dell
 */
@Named("estadisticasService")
@Stateless
public class EstadisticasService {


    @EJB
    private MunicipioFacade municipioFacade;

    @EJB
    private EstadisticasServiceFacade estadisticasServiceFacade;

   
    public EstadisticasServiceFacade getEstadisticasServiceFacade() {
        return estadisticasServiceFacade;
    }

  
    public void setEstadisticasServiceFacade(EstadisticasServiceFacade estadisticasServiceFacade) {
        this.estadisticasServiceFacade = estadisticasServiceFacade;
    }

    
    @Transient
    public int getCantDemandas(Municipio municipio) {    
        List<DemandaHabitacional> items = getEstadisticasServiceFacade().findAllDemandasByMunicipioId(municipio);
        return items.size();
    }

    @Transient
    public int getCantDeIntegrantes(Municipio municipio) {
        List<Persona> items = getEstadisticasServiceFacade().findAllPersonasByMunicipioId(municipio);
        return items.size();
    }
    
    @Transient
    public int getCantDeViviendasSegunDemanda(Municipio municipio, String demanda) {    
        List<DemandaHabitacional> items = getEstadisticasServiceFacade().findAllDemandasSegunNecesidad(municipio, demanda);
        return items.size();
    }
    
    @Transient
    public int getCantDeIntegrantesPorNecesidad(Municipio municipio, String necesidad) {    
        List<Persona> items = getEstadisticasServiceFacade().findAllPersonasSegunNecesidad(municipio, necesidad);
        return items.size();
    }
     
    @Transient
    public int getCantDeViviendasSegunVinculo(Municipio municipio, String vinculo) {    
        List<DemandaHabitacional> items = getEstadisticasServiceFacade().findAllDemandasSegunVinculo(municipio, vinculo);
        return items.size();
    }
    
    @Transient
    public int getCantDeIntegrantesPorVinculo(Municipio municipio, String vinculo) {    
        List<Persona> items = getEstadisticasServiceFacade().findAllPersonasSegunVinculo(municipio, vinculo);
        return items.size();
    }
     
    @Transient
    public int getCantDeIntegrantesTienenVivienda(Municipio municipio) {    
        List<Persona> items = getEstadisticasServiceFacade().findAllPersonasConVivienda(municipio);
        return items.size();
    }
    

    
    public MunicipioFacade getMunicipioFacade() {
        return municipioFacade;
    }

    public void setMunicipioFacade(MunicipioFacade municipioFacade) {
        this.municipioFacade = municipioFacade;
    }
    
    // TODO
//    @Transient
//    public int (){
//        return 666;getCantDeViviendasNuevas
//    }

     
    @Transient
    public int getCantDemandasNoTienenVivienda(Municipio municipio) {
        List<DemandaHabitacional> items = getEstadisticasServiceFacade().findAllDemandasSegunTieneVivienda(municipio, false);
        return items.size(); 
    }

    @Transient
    public int getCantDemandasTienenVivienda(Municipio municipio) {
         List<DemandaHabitacional> items = getEstadisticasServiceFacade().findAllDemandasSegunTieneVivienda(municipio, true);
        return items.size();
    }

    @Transient
    public int getCantIntegrantesNoTienenVivienda(Municipio municipio) {
         List<Persona> items = getEstadisticasServiceFacade().findAllPersonasSegunTieneVivienda(municipio, false);
        return items.size();
    }

    @Transient
    public int getCantIntegrantesTienenVivienda(Municipio municipio) {
        List<Persona> items = getEstadisticasServiceFacade().findAllPersonasSegunTieneVivienda(municipio, true);
        return items.size();
    }

}
